perm filename NEWIO.FAI[EX2,LCS] blob
sn#153750 filedate 1975-07-17 generic text, type T, neo UTF8
00100 TITLE MUSIO
00200 INTERNAL ZBIT,GETTAP,TOTAPE,FINTAP,BACKSP,USETI
00300
00400 ;'CH' IS USED IN GETTAP, TOTAPE
00500 ;'CH2' " " " MTA1, INMTA1, GETFI2, FASTI2
00600 INTERNAL GETFI2,FASTI2,UNPACK
00700
00800 CH←12
00900 CH2←11
01000 CH3←13
01010
01020 ; CALL USETI(WDS/128)
01030
01040 USETI: 0
01045 MOVE 1,@(16)
01050 USETI CH2,(1)
01060 JRA 1,1(16)
01100
01110 ; CALL UNPACK(WRD,LFT SMPL, MID SMPL, RT SMPL)
01120 UNPACK: 0
01130 MOVE 1,[POINT 12,@(16)]
01140 ILDB 1
01150 MOVEM @1(16)
01160 ILDB 1
01170 MOVEM @2(16)
01180 ILDB 1
01190 MOVEM @3(16)
01195 JRA 16,4(16)
01197
01200 ;CALL TOTAPE(<ARRAY>,<NO.OF WORDS>) WRITES ON MAGTAPE
01300
01400 TOTAPE: 0
01500 HRRZ 0,0(16)
01600 SUBI 0,1
01700 MOVEM 0,COM
01800 MOVN 0,@1(16)
01900 HRLM 0,COM
02000 OUTPUT CH,COM
02100 STATZ CH,740000
02200 0
02300 JRA 16,2(16)
02400
02500 ;CALL GETTAP
02600
02700 GETTAP: 0 ;USES TOTAPE, CH. READS OR WRITES MTA0.
02800 INIT CH,617
02900 SIXBIT/MTA0/
03000 0
03100 HALT
03200 JRA 16,0(16)
03300
03400 ; CALL FINTAP
03500
03600 FINTAP: 0
03700 CLOSE CH,0
03800 STATZ CH,740000
03900 0
04000 RELEASE CH,0
04100 JRA 16,0(16)
04200 ; CALL BACKSP
04300
04400 BACKSP: 0
04500 INIT CH,617
04600 SIXBIT/MTA0/
04700 0
04800 HALT
04900 MTAPE CH,7
05000 JRA 16,0(16)
05100
05200 ; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
05300 ; (256 WDS) (512 WDS)
05400
05500 ZBIT: 0
05600 MOVE 2,(16)
05700 MOVE 1,1(16)
05800 HRLI 2,-=256
05900
06000 LOOP: HLRE 0,(2)
06100 FSC 0,233 ;FLOAT IT
06200 MOVEM 0,(1) ; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
06300 HRRE 0,(2)
06400 FSC 0,233
06500 MOVEM 0,1(1)
06600 ADDI 1,2
06700 AOBJN 2,LOOP
06800 JRA 16,1(16)
06900
07000
07100 BLKS←=1
07200 REGS: BLOCK 20
07300
07400 ;CALL GETFIL(<FILE>)
07500
07600 GETFI2: 0
07700 MOVE 0,@0(16)
07800 MOVEM 0,FILNAM
07900 JSA 16,INTFI2
08000 MOVE 0,[SIXBIT/MUS/]
08100 MOVEM 0,DIR+1
08200 JSA 16,LKUP
08300 SKIPA
08400 JRST GETF3
08500 SETZM DIR+1
08600 JSA 16,LKUP
08700 0
08800 GETF3: JRA 16,1(16)
08900
09000 LKUP: 0
09100 SETZM DIR+2
09200 SETZM DIR+3
09300 LOOKUP CH2,DIR
09400 JRA 16,0(16)
09500 JRA 16,1(16)
09600
09700 DIR: BLOCK 4
09800
09900 ;CALL FASTI2(<ARRAY>,<NO. WORDS>)
10000
10100 FASTI2: 0
10200 HRRZ 0,0(16)
10300 SUBI 0,1
10400 MOVEM 0,COM
10500 MOVN 0,@1(16)
10600 HRLM 0,COM
10700 INPUT CH2,COM
10800 STATZ CH2,740000
10900 0
11000 JRA 16,2(16)
11100
11200 INTFI2: 0 ;INITS DSK
11300 MOVEI REGS
11400 BLT REGS+3
11500 INIT CH2,17
11600 SIXBIT/DSK/
11700 0
11800 0
11900 DSKX: MOVE 0,FILNAM#
12000 MOVEM 0,FN#
12100 MOVE 1,[POINT 7,FN]
12200 INTF3: MOVE 2,[POINT 6,DIR]
12300 SETZM DIR
12400 MOVEI 3,5
12500 INTF1: ILDB 0,1
12600 CAIN 0," "
12700 JRST INTF2
12800 SUBI 0,40
12900 IDPB 0,2
13000 SOJG 3,INTF1
13100 INTF2: HRLZI REGS
13200 BLT 3
13300 JRA 16,0(16)
13400
13500 COM: OCT 0,0
13600 ;;;COM1: 0
13700 BLKNUM: 0
13800
14100
14200 ;;; ENTRY FILBRK
14300 EXTERN DEV,FILBRK
14400 INTERN FNAM,DLK,ASTR
14500
14600 WD←7
14800
14900 ASTR: ASCIZ/
15000 */
15100 ZERSUB: 0
15200 MOVE PT2
15300 MOVEM PT
15400 SETZB 1,WD
15500 JRST @ZERSUB
15600
15700 COMSUB: CAIN 15
15800 JRST [MOVEI 10,EOJ
15900 JRST (16)]
16000 CAIN "["
16100 JRST [MOVEI 10,GTPROJ
16200 JRST (16)]
16300 CAIE "."
16400 JRST 2(16)
16500 MOVEI 10,GTEXT
16600 JRST (16)
16700
16800 FSUB: JSP 16,COMSUB
16900 MOVEM WD,FNAM
17000 JRST (10)
17100 CAIL 1,6
17200 JRST .+3
17300 SUBI 40
17400 IDPB PT
17500 AOJA 1,(15)
17600
17700 ACS: BLOCK 20
17800
17900 FNAM:DLK: 0
18000 EXT: 0
18100 0
18200 PPN: 0
18300 PT: POINT 6,WD
18400 PT2: POINT 6,WD
18500
18600 FILBRK: 0
18700 MOVEM 17,ACS+17
18800 MOVEI 17,ACS
18900 BLT 17,ACS+16
19000 ST: MOVSI 'DSK'
19100 MOVEM DEV
19200 SETZB FNAM
19300 MOVEM FNAM+1
19400 MOVEM FNAM+2
19500 MOVEM FNAM+3
19600 OUTSTR ASTR
19700 GTDEV: JSR ZERSUB
19800 MOVEI 15,.+1
19900 INCHWL
20000 CAIE ":"
20100 JRST FSUB
20200 MOVEM WD,DEV
20300 GTFNAM: JSR ZERSUB
20400 MOVEI 15,.+1
20500 INCHWL
20600 JRST FSUB
20700 GTEXT: JSR ZERSUB
20800 INCHWL
20900 JSP 16,COMSUB
21000 MOVEM WD,EXT
21100 JRST (10)
21200 CAIL 1,3
21300 JRST .+3
21400 SUBI 40
21500 IDPB PT
21600 AOJA 1,GTEXT+1
21700
21800 GTPROJ: SETZB 1,2
21900 INCHWL
22000 CAIN ","
22100 JRST GTPROG
22200 SUBI 60
22300 CAILE 7
22400 JRST ERR
22500 ASH 2,3
22600 JOV ERR
22700 HRLZS
22800 ADD 2,
22900 JOV ERR
23000 JRST GTPROJ+1
23100
23200 GTPROG: INCHWL
23300 CAIE 15
23400 CAIN "]"
23500 JRST COMBIN
23600 SUBI 60
23700 CAILE 7
23800 JRST ERR
23900 ASH 1,3
24000 JOV ERR
24100 HRLZS
24200 ADD 1,
24300 JOV ERR
24400 JRST GTPROG
24500 COMBIN: HLR 2,1
24600 MOVEM 2,PPN
24700 EOJ: CLRBFI
24800 MOVSI 17,ACS
24900 BLT 17,16
25000 MOVE 17,ACS+17
25100 JRA 16,(16)
25200 ERR: CLRBFI
25300 OUTSTR [ASCIZ/?IMPROPER SYNTAX?
25400 /]
25500 JRST ST
25600 END